package org.summer.lawyer.domain.vo.userwithdraw;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.summer.lawyer.domain.UserWithdraw;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 用户提现记录视图对象 user_withdraw
 *
 * @author summer
 * @date 2024-06-25
 */
@Schema(title ="用户提现记录视图对象 user_withdraw", description = "用户提现记录视图对象 user_withdraw")
@Data
@AutoMapper(target = UserWithdraw.class)
public class UserWithdrawVo implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(title = "id", type = "Long", description = "主键ID")
    private Long id;

    /**
     * 微信小程序appid
     */
    @Schema(title = "appId", type = "String", description = "微信小程序appid")
    private String appId;

    /**
     * 商户号
     */
    @Schema(title = "mchNo", type = "String", description = "商户号")
    private String mchNo;

    /**
     * 商户名称
     */
    @Schema(title = "mchName", type = "String", description = "商户名称")
    private String mchName;

    /**
     * 第三方交易号
     */
    @Schema(title = "tradeNo", type = "String", description = "第三方交易号")
    private String tradeNo;

    /**
     * 支付订单ID
     */
    @Schema(title = "payOrderId", type = "Long", description = "支付订单ID")
    private Long payOrderId;

    /**
     * 用户ID
     */
    @Schema(title = "wxUserId", type = "Long", description = "用户ID")
    private Long wxUserId;

    /**
     * 提现（渠道）方式（10=微信，20=支付宝，30=银行转账）
     */
    @Schema(title = "withdrawWay", type = "String", description = "提现（渠道）方式（10=微信，20=支付宝，30=银行转账）")
    private String withdrawWay;

    /**
     * 提现状态（10发起申请（待审核理）前台显示处理中，19提现中，20提现成功，30审核不通过，40提现失败）
     */
    @Schema(title = "withdrawStatus", type = "String", description = "提现状态（10发起申请（待审核理）前台显示处理中，19提现中，20提现成功，30审核不通过，40提现失败）")
    private String withdrawStatus;

    /**
     * 提现单号
     */
    @Schema(title = "withdrawNumber", type = "String", description = "提现单号")
    private String withdrawNumber;

    /**
     * 收款账户(微信openid,支付宝账号，银行卡号）
     */
    @Schema(title = "receivableAccount", type = "String", description = "收款账户(微信openid,支付宝账号，银行卡号）")
    private String receivableAccount;

    /**
     * 收款人姓名
     */
    @Schema(title = "realName", type = "String", description = "收款人姓名")
    private String realName;

    /**
     * 开户行
     */
    @Schema(title = "openingBank", type = "String", description = "开户行")
    private String openingBank;

    /**
     * 提现金额（单位分）
     */
    @Schema(title = "amount", type = "Long", description = "提现金额（单位分）")
    private Long amount;

    /**
     * 审核不通过原因
     */
    @Schema(title = "reviewReason", type = "String", description = "审核不通过原因")
    private String reviewReason;

    /**
     * 审核人ID
     */
    @Schema(title = "reviewerId", type = "Long", description = "审核人ID")
    private Long reviewerId;

    /**
     * 审核人姓名
     */
    @Schema(title = "reviewerName", type = "String", description = "审核人姓名")
    private String reviewerName;

    /**
     * 审核时间
     */
    @Schema(title = "reviewTime", type = "Date", description = "审核时间")
    private Date reviewTime;

    /**
     * 备注
     */
    @Schema(title = "remark", type = "String", description = "备注")
    private String remark;


    /**
     * 创建时间
     */
    @Schema(title = "createTime", type = "Date", description = "创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @Schema(title = "updateTime", type = "Date", description = "更新时间")
    private Date updateTime;

    /**
     * 收款人手机号
     */
    @Schema(title = "phoneNumber", type = "String", description = "收款人手机号")
    private String phoneNumber;

    /**
     * 收款人头像
     */
    @Schema(title = "avatar", type = "String", description = "收款人头像")
    private String avatar;

    /**
     * 用户提现手续费百分比
     */
    @Schema(title = "withdrawFeePercent", type = "Integer", description = "用户提现手续费百分比")
    private Integer withdrawFeePercent;

    /**
     * 实际到账金额
     */
    @Schema(title = "payment", type = "Long", description = "实际到账金额")
    private Long payment;

}
